The present invention relates in general to the configuration of a computer system, and in particular to sharing configuration data between multiple integrated circuits.
A computer system may be configured for initialization by storing configuration data in a register of an integrated circuit included in the system. Values for the configuration data may be established using both hardware and software methods. An example method for hardware configuration includes programming values for individual pins on an integrated circuit. The programmed values may be set to a threshold voltage or ground depending on the configuration setting. An example method for software configuration includes writing values directly to the register of the integrated circuit. The configuration values are distributed to the appropriate components within the computer system via a data bus. Some configuration values cannot be changed after initialization because the correct value must be set before initialization; otherwise the data bus may not be operable.
A computer system may require the configuration information to be shared across multiple integrated circuits or devices within the system. The configuration data may be shared by duplicating registers and connecting programming inputs across the system. System software ensures that the configuration data is consistent by writing to all of the registers individually. Likewise, the system hardware ensures that all of the programmed pin information is correctly loaded during initialization into the respective subsystems. However, individual subsystems may become inconsistent with other subsystems during operation because hardware initialization of programmed pins and software overrides are separately executed for each subsystem. Furthermore, connecting all pins that are programmed for the same configuration setting is laborious as computer systems become more complex with a large number of integrated circuits each having a large number of pins.